package cn.openea.perpartner.msg.service;

import com.alibaba.fastjson.JSONObject;
/**
 * @Name: 从公众号发送消息到个人
 *  包含发送：普通文本消息、模板消息
 * @author: Mr.Yun
 * @Created: 2022/11/7 18:43
 */
public interface SendCore {
    /**
     * 从公众号发送普通文本消息到个人
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param textmsg 需要发送的消息
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTextMsg(String toWxOpenid, String textmsg);


    /**
     * 从公众号发送模板消息到个人，传入消息所在记录的标记
     * @param docUnid 需要发送的消息，所所在的数据库记录标记，通过这个标记可以找到这条消息的参数
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String docUnid);

    /**
     * 从公众号发送模板消息到个人，传入消息所在记录的标记
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param docUnid 需要发送的消息，所所在的数据库记录标记，通过这个标记可以找到这条消息的参数
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String toWxOpenid, String docUnid);

    /**
     * 从公众号发送模板消息到个人，自主传入消息参数
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param template_id 模板id
     * @param url 模板跳转链接（海外帐号没有跳转能力）
     * @param miniappdata 跳小程序所需数据，不需跳小程序可不用传该数据
     * @param msgdata 发送的消息信息替换的内容
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String toWxOpenid, String template_id, String url, JSONObject miniappdata, JSONObject msgdata);

    /**
     * 从公众号发送模板消息到个人，自主传入消息参数，重载函数
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param template_id 模板id
     * @param miniappdata 跳小程序所需数据，不需跳小程序可不用传该数据
     * @param msgdata 发送的消息信息替换的内容
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String toWxOpenid, String template_id, JSONObject miniappdata, JSONObject msgdata);

    /**
     * 从公众号发送模板消息到个人，自主传入消息参数，重载函数
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param template_id 模板id
     * @param url 模板跳转链接（海外帐号没有跳转能力）
     * @param msgdata 发送的消息信息替换的内容
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String toWxOpenid, String template_id, String url, JSONObject msgdata);

    /**
     * 从公众号发送模板消息到个人，自主传入消息参数，重载函数
     * @param toWxOpenid 接收消息的个人，在公众号的openid身份
     * @param template_id 模板id
     * @param msgdata 发送的消息信息替换的内容
     * @return 消息发送的结果，JSON串，一般是调用消息发送接口后从公众号返回的内容
     */
    String sendTemplateMsg(String toWxOpenid, String template_id, JSONObject msgdata);

}
